<!doctype html>
<!--
@license
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
  <head>
    <title></title>
    <meta charset="UTF-8">
    <script>
      window.addEventListener('HTMLImportsLoaded', function() {
        window.importsOk = true;
      });
      window.webComponentsReadyCount = 0;
      document.addEventListener('WebComponentsReady', function() {
        window.webComponentsReadyCount++;
      });
    </script>
    <script src="../webcomponents-loader.js"></script>
    <script src="../../web-component-tester/browser.js"></script>
    <link rel="import" href="imports/import-file.html">
  </head>
  <body>
    <my-element></my-element>
    <script>
      window.addEventListener('WebComponentsReady', () => {
        class MyElement extends HTMLElement {
          connectedCallback(){
            this.textContent = 'upgraded!';
          }
        }
        customElements.define('my-element', MyElement);
      });
      suite('Loader', function() {
        test('expected boot', function() {
          assert.equal(window.webComponentsReadyCount, 1, 'failed to fire WebComponentsReady');
          if (window.HTMLImports) {
            assert.ok(window.importsOk, 'WebComponentsReady without HTMLImportsLoaded');
          }
          assert.ok(window.importTest, 'import failed to set global value');
        });
        test('WebComponentsReady was fired on document and bubbled', function() {
          assert.equal(document.querySelector('my-element').textContent, 'upgraded!');
        })
      });
    </script>
  </body>
</html>
